
/*****  变量定义 ******/
struct sock *sk;

PAGE_SIZE

tcp_write_xmit

tcp_transmit_skb
sock_alloc_send_skb
sock_alloc_send_pskb

release_sock

sock_owned_by_user
tcp_v4_rcv
tcp_init

inet_hashinfo

tcp_setsockopt


//** ch27 **//
inet_csk_init_xmit_timers
inet_csk_reqsk_queue_prune

inet_connection_sock

/// ch 28
tcp_request_sock

request_sock_ops

inet_csk_get_port
tcp_hashinfo

sys_socketcall

inet_stream_ops
inet_init

proto_register

//  28.8  主动打开
tcp_connect_init

tcp_make_synack  // 被动连接下面看看TCP被动连接时，如何选择窗口大小。
//函数tcp_make_synack是用于生成三次握手中的syn+ack报文，




//ch29
tcp_enter_cwr

// ch 30
tcp_current_mss

proto_ops
sock
tcp_sendmsg
page
tcp_write_xmit
tcp_v4_send_check
tcp_push_one

tcp_nagle_test


////     30.3.3  传输接口层的实现
tcp_transmit_skb


//// ch30.6 ACK 的接收
tcp_ack
//   30.8  路径MTU发现      ////
tcp_mtup_init
tcp_mtu_probe
tcp_retransmit_skb
//// ch 31 TCP的输入

//// 31.3  报文的过滤
sk_filter
tcp_fast_path_check

//// 31.4
skb_copy_datagram_iovec
skb_copy_and_csum_datagram_iovec

tcp_rcv_rtt_measure_ts
tcp_rcv_space_adjust

tcp_cleanup_rbuf
tcp_select_window

//31.5  TCP选项的处理
tcp_fast_parse_options
tcp_parse_options

//// 31.9  确认的发送
tcp_measure_rcv_mss
tcp_skb_cb

inet_sock
tcp_sock

// ch33
////  33.10  select系统调用的实现
udp_poll



/////////////// TCP 过程整理 /////////////
// 1. 接收窗口
tcp_select_window
tcp_receive_window


/////////////// sync and lock   /////////////////

spin_lock_bh()// 锁住下半段，即禁止软中断，禁止抢占；

gfp_t


int main()
{

release_sock();
}





